package com.zhihuishu.micro.course.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.ibatis.annotations.Param;

import com.zhihuishu.micro.course.helper.data.KVPair;
import com.zhihuishu.micro.course.model.TblCourse;

/**
 * 课程扩展信息数据访问接口
 * @author	zhanglikun
 * @date	2015年10月20日 下午3:20:53
 */
public interface CourseExtendPropMapper {

	/**
	 * 保存扩展信息
	 * @param courseId
	 * @param datas	字段名使用CourseExtendPropEnums枚举名
	 */
	void save(@Param("courseId")long courseId ,@Param("datas")Set<KVPair<String ,String>> datas) ;

	/**
	 * 更新扩展信息
	 * @param courseId
	 * @param datas
	 */
	void update(@Param("courseId")long courseId ,@Param("field")String field ,@Param("value")String value) ;
	
	/**
	 * 查询指定课程全部扩展信息
	 * @param courseId
	 * @return
	 */
	List<Map<String ,String>> list(long courseId) ;
	
	/**
	 * 根据属性名称集合，查询表中已包含的属性
	 * @param courseId
	 * @param propNames
	 * @return
	 */
	Set<String> contains(@Param("courseId")long courseId ,@Param("propNames")Set<String> propNames) ;
	
	/**
	 * 根据课程ID集合和键获取更新时间
	 * @param courseId
	 * @param key
	 * @return
	 */
	List<Map<String, Object>> getUpdateTimeByCourseIdsAndKey(@Param("courseIds")List<Long> courseIds, @Param("key")String key);
}
